package com.szit.adminserver.server;

import com.szit.util.Result;
import com.szit.util.vo.AdminUserInfo;
import com.szit.util.vo.AdminUserRoleInfo;
import com.szit.util.vo.LoginUser;
import com.szit.util.vo.ModifyPasswordInfo;

/**
 * @author wyler
 * @date 2020/10/09
 * 用户服务类接口
 */
public interface AdminUserServer {

    /**
     * 登录
     * @param loginUser
     * @return
     */
    Result login(LoginUser loginUser);

    /**
     * 登出
     * @param token
     * @return
     */
    Result loginOut(String token);

    /**
     * 根据用户名修改用户密码
     * @param modifyPasswordInfo
     * @return
     */
    Result updatePasswordByUsername(ModifyPasswordInfo modifyPasswordInfo);

    /**
     * 添加子用户
     * @param adminUserInfo
     * @return
     */
    Result insertAdminUser(AdminUserInfo adminUserInfo);

    /**
     * 删除用户
     * @param token
     * @param userId
     * @return
     */
    Result deleteAdminUserByUserId(String token,Integer userId);

    /**
     * 查找所有用户
     * @param token
     * @param pageNum
     * @param pageSize
     * @return
     */
    Result selectAllUser(String token,Integer pageNum,Integer pageSize);

    /**
     * 根据token查找用户并返回order,供其他服务调用
     * @param token
     * @return
     */
    Result selectAdminUserByToken(String token);

    /**
     * 更改用户角色
     * @param adminUserRoleInfo
     * @return
     */
    Result updateUserRoleByUserId(AdminUserRoleInfo adminUserRoleInfo);

    /**
     * 删除用户角色
     * @param adminUserRoleInfo
     * @return
     */
    Result deleteAdminUserRole(AdminUserRoleInfo adminUserRoleInfo);
}
